﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Drawing;
using SRP_LibBusinessRules;
using SRP_LibBusinessEntity;
using SRPCENTRIA.Code;
using System.IO;
using System.Xml;
using System.Text;

namespace SRPCENTRIA.ws_appPrivada
{
    public partial class wInformBasica : BasePage
    {
        //DataTable tablaInformBasica = new DataTable("tblInformBasica");
        DataTable tablaTodaInformBasicaRubro = new DataTable("tblTodaInformBasicaRubro");
        //DataTable dtRubroComprador = new DataTable("TablaRubroComprador");
       
        //DataSet dsDatos = new DataSet();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["idproveedor"] != null)
            {
                if (Session["Usuario"] == null)
                {
                    Session["colNumIdet"] = Request.QueryString["idproveedor"].ToString();
                }
                else 
                {
                    txtNumIdent.Text = Request.QueryString["idproveedor"].ToString();
                }
               
            }
            else
            {
                Response.Redirect("wBusqProveedor.aspx");
            }
            
            //CargarRubrosComprador();
            //CargarKeyWords();
            CargarInformacionBasica();
            //CargarRubrosComprador();
            //session_InformBasica();
            //MostrarTabla();
            session_TodaInformBasicaRubro();

            
            if (!Page.IsPostBack)
            {
                if (Session["Usuario"] != null) 
                {
                    EUsuario usuario = (EUsuario) Session["Usuario"];
                    ((Label)Master.FindControl("lblusuario")).Text = usuario.VUSU_NOMBRES;
                }
                NGenerico objwsGeneric = new NGenerico();
                

                ListarClasPersona();
                ListarTipIdentificacion();
                ListarTipEmpresa();
                
                VisualizarCampos();
                LlenarCampos();
                CargarRubrosProveedor();
                CargarRubrosComprador();
                CargarKeyWords();
                //OcultarTabla();
                CargarTiposRubro();

                dllTipIden_SelectedIndexChanged(sender, e);

                dllTipMoneda.DataSource=objwsGeneric.ListarMoneda();
                dllTipMoneda.DataTextField= "VMON_DESCRIPCION_MONEDA";
                dllTipMoneda.DataValueField = "VMON_CODIGO_MONEDA";
                dllTipMoneda.DataBind();
                DesabilitarControles();
                

            }
            CargarArchivosAdjuntos();
        }
        protected void rbTipoNomb_SelectedIndexChanged(object sender, EventArgs e)
        {
            VisualizarCampos();
        }


        //#region --- Session InformBasica ----
        //private void session_InformBasica()
        //{
        //    if (Session["tblInformBasica"] == null)
        //    {
        //        Session["tblInformBasica"] = tablaInformBasica;
        //        MostrarTabla();
        //    }
        //    else
        //    {
        //        tablaInformBasica = (DataTable)Session["tblInformBasica"];

        //    }
        //}
        //#endregion

        #region -- Llenar Combos --
        private void ListarClasPersona()
        {
            NGenerico objwsGeneric = new NGenerico();
            dllClasPer.DataSource = objwsGeneric.ListarClase_Per();
            dllClasPer.DataTextField = "VCLA_DESCRIPCION_CLASE_PERSONA";
            dllClasPer.DataValueField = "VCLA_CODIGO_CLASE_PERSONA";
            dllClasPer.DataBind();

        }
        private void ListarTipIdentificacion()
        {
            NGenerico objwsGeneric = new NGenerico();
            dllTipIden.DataSource = objwsGeneric.ListarTip_Iden("6");
            dllTipIden.DataTextField = "VTIP_DESCRIPCION_TIPO_IDENTIFICACION";
            dllTipIden.DataValueField = "VTIP_CODIGO_TIPO_IDENTIFICACION";
            dllTipIden.DataBind();

        }
        private void ListarTipEmpresa()
        {
            NGenerico objwsGeneric = new NGenerico();
            dllTipEmp.DataSource = objwsGeneric.ListarTipo_Emp();
            dllTipEmp.DataTextField = "VEMP_DESCRIPCION_TIPO_EMPRESA";
            dllTipEmp.DataValueField = "VEMP_CODIGO_TIPO_EMPRESA";
            dllTipEmp.DataBind();

        }
        private void CargarTiposRubro() 
        {
            NRubro rubro = new NRubro();
            DropDownList ddltiporubro = (DropDownList)GvgRubro.FooterRow.FindControl("ddltiporubro");
            ddltiporubro.DataValueField = "VRUB_CODIGO_RUBRO";
            ddltiporubro.DataTextField = "VRUB_DESC_RUBRO";
            ddltiporubro.DataSource = rubro.ListarTipoRubro();
            ddltiporubro.DataBind();
            ddltiporubro.Items.Insert(0, "--Seleccionar--");

        }
        #endregion

        #region -- Visualizar Campos radio button --

        private void VisualizarCampos()
        {

            if (rbTipoNomb.SelectedValue == "0")
            {
                Raz_Social.Visible = true;
                Nom_Comercial.Visible = true;
                Nombres.Visible = false;
                Apellidos.Visible = false;

                txtNomb.Text = "";
                txtApell.Text = "";

            }
            else
            {
                Nombres.Visible = true;
                Apellidos.Visible = true;
                Raz_Social.Visible = false;
                Nom_Comercial.Visible = false;
                txtNomComercial.Text = "";
                txtRazSocial.Text = "";

            }
        }

        #endregion

        //#region -- Tabla --
        //private void MostrarTabla()
        //{
            
        //    tablaInformBasica.Columns.Add(new DataColumn("VRUB_CODIGO_RUBRO", Type.GetType("System.String")));
        //    tablaInformBasica.Columns.Add(new DataColumn("VRUB_NOMBRE_RUBRO", Type.GetType("System.String")));
        //    tablaInformBasica.Columns.Add(new DataColumn("VCOM_NOMBRE_TIPO_RUBRO", Type.GetType("System.String")));
        //    tablaInformBasica.Columns.Add(new DataColumn("VBAS_NUM_IDENTIFICACION", Type.GetType("System.String")));
        //    DataRow fila = tablaInformBasica.NewRow();
        //    tablaInformBasica.Rows.Add(fila);
        //    GvgRubro.DataSource = tablaInformBasica;
        //    GvgRubro.DataBind();
        //    tablaInformBasica.Dispose();
           
        //}
        //#endregion

        protected void BtnAgregar_Click(object sender, EventArgs e)
        {

            //GridViewRow filaGrilla = GvgRubro.FooterRow;
            //DataRow fila = tablaInformBasica.NewRow();
            //if (GvgRubro.Rows.Count == 0)
            //{
            //    fila["VRUB_CODIGO_RUBRO"] = "";
            //    fila["VRUB_NOMBRE_RUBRO"] = "";
            //    fila["VCOM_NOMBRE_TIPO_RUBRO"] = "";
            //    fila["VBAS_NUM_IDENTIFICACION"] = "";
            //}
            //else
            //{
            //    fila["VRUB_CODIGO_RUBRO"] = ((DropDownList)GvgRubro.FooterRow.FindControl("ddlTipoRubro")).SelectedValue;
            //    fila["VRUB_NOMBRE_RUBRO"] = ((DropDownList)GvgRubro.FooterRow.FindControl("ddlTipoRubro")).SelectedItem.Text;
            //    fila["VCOM_NOMBRE_TIPO_RUBRO"] = ((TextBox)filaGrilla.FindControl("txtGvgNomRubro")).Text;
            //    fila["VBAS_NUM_IDENTIFICACION"] = txtNumIdent.Text;
            //}
            
            //string NombRubro;
            //NombRubro = ((TextBox)filaGrilla.FindControl("txtGvgNomRubro")).Text;
            //if (NombRubro == "")
            //{

            //}
            //else
            //{
            //    QuitarTabla();
            //    tablaInformBasica.Rows.Add(fila);
            //    GvgRubro.DataSource = tablaInformBasica;
            //    GvgRubro.DataBind();
            //}

            DropDownList ddl = (DropDownList)GvgRubro.FooterRow.FindControl("ddlTipoRubro");

            if (ddl.SelectedIndex > 0)
            {

                string idrubro = ddl.SelectedValue;
                string nombrerubro = ((TextBox)GvgRubro.FooterRow.FindControl("txtGvgNomRubro")).Text;
                string identificacion = txtNumIdent.Text;

                AgregarRubroComprador(idrubro, nombrerubro, identificacion);
                CargarRubrosComprador();

                CargarTiposRubro();
            }
            else 
            {
                EscribirScriptManager("Debe seleccionar un Tipo de Rubro primero");
            }
        }

        //#region -- Quitar fila  --
        //private void QuitarTabla()
        //{
        //    string celda1;
        //    celda1 = tablaInformBasica.Rows[0].ItemArray[tablaInformBasica.Columns["VCOM_NOMBRE_TIPO_RUBRO"].Ordinal].ToString();
        //    if (celda1 == "")
        //    {
        //        tablaInformBasica.Rows.RemoveAt(0);
        //    }

        //}
        //#endregion
        //#region -- Ocultar fila  --
        //private void OcultarTabla()
        //{
        //    if (tablaInformBasica.Rows.Count > 0)
        //    {
        //        string celda1;
        //        celda1 = tablaInformBasica.Rows[0].ItemArray[tablaInformBasica.Columns["VCOM_NOMBRE_TIPO_RUBRO"].Ordinal].ToString();
        //        if (celda1 == "")
        //        {
        //            GvgRubro.Rows[0].Visible = false;
        //        }
        //    }
        //}
        //#endregion
        

        #region --- Session TodaInformBasicaRubro ----
        private void session_TodaInformBasicaRubro()
        {
            if (Session["tblTodaInformBasicaRubro"] == null)
            {
                Session["tblTodaInformBasicaRubro"] = tablaTodaInformBasicaRubro;
                MostrarTodaInformBasicaRubro();
            }
            else
            {
                tablaTodaInformBasicaRubro = (DataTable)Session["tblTodaInformBasicaRubro"];

            }
        }
        #endregion
        #region -- Tabla  TodaInformBasicaRubro--
        private void MostrarTodaInformBasicaRubro()
        {

            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colClasPers", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("coltipIdent", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colNumIdet", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colrbTipNom", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colRazonSoc", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colNomComer", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colNomb", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colApell", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colTipEmp", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colEmpOtros", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colRegPubInscripPart", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colTipMoneda", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colMontAnualVent", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colNumEmpl", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colPagWeb", Type.GetType("System.String")));
            tablaTodaInformBasicaRubro.Columns.Add(new DataColumn("colEmail", Type.GetType("System.String")));
        }
        #endregion

        protected void dllTipEmp_SelectedIndexChanged(object sender, EventArgs e)
        {
            Activar_TextoOtros();
        }

        private void Activar_TextoOtros() 
        {
            if (dllTipEmp.SelectedItem.Text == "OTROS")
            {
                txtEmpOtros.Visible = true;
            }
            else
            {
                txtEmpOtros.Visible = false;
                txtEmpOtros.Text = "";
            }
        }

        private void Validar()
        {
           //-validar cajas de texto
            if (dllClasPer.SelectedValue == "0")
            {
                dllClasPer.Focus();

                return;
            }
            if (dllTipIden.SelectedValue == "0")
            {
                dllTipIden.Focus();
                return;
            }

            Int64 SUMA;
            SUMA = ((Convert.ToInt64(txtNumIdent.Text.Substring(1, 1))) + (Convert.ToInt64(txtNumIdent.Text.Substring(2, 1))) + (Convert.ToInt64(txtNumIdent.Text.Substring(3, 1))) + (Convert.ToInt64(txtNumIdent.Text.Substring(4, 1))) + (Convert.ToInt64(txtNumIdent.Text.Substring(5, 1))));
            if (txtNumIdent.Text.Trim() == "" || SUMA == 0)
            {
                txtNumIdent.Focus();
                txtNumIdent.BackColor = Color.Red;
                return;
            }
            {
                txtNumIdent.BackColor = Color.White;
            }


            if (rbTipoNomb.SelectedValue == "0")
            {

                if (txtRazSocial.Text.Trim() == "")
                {
                    txtRazSocial.Focus();
                    txtRazSocial.BackColor = Color.Red;
                    return;
                }
                {
                    txtRazSocial.BackColor = Color.White;
                }
                if (txtNomComercial.Text.Trim() == "")
                {
                    txtNomComercial.Focus();
                    txtNomComercial.BackColor = Color.Red;
                    return;
                }
                {
                    txtNomComercial.BackColor = Color.White;
                }
            }
            else
            {
                if (txtNomb.Text.Trim() == "")
                {
                    txtNomb.Focus();
                    txtNomb.BackColor = Color.Red;
                    return;
                }
                {
                    txtNomb.BackColor = Color.White;
                }
                if (txtApell.Text.Trim() == "")
                {
                    txtApell.Focus();
                    txtApell.BackColor = Color.Red;
                    return;
                }
                {
                    txtApell.BackColor = Color.White;
                }

            }

            if (dllTipEmp.SelectedValue == "0")
            {
                dllTipEmp.Focus();
                return;
            }

            if (dllTipEmp.SelectedItem.Text == "Otros")
            {
                 
                if (txtEmpOtros.Text.Trim() == "")
                {
                    txtEmpOtros.Focus();
                    txtEmpOtros.BackColor = Color.Red;
                    return;
                }
                {
                    txtEmpOtros.BackColor = Color.White;
                }
            }

            if (txtRegPubInscripPart.Text.Trim() == "")
            {
                txtRegPubInscripPart.Focus();
                txtRegPubInscripPart.BackColor = Color.Red;
                return;
            }
            {
                txtRegPubInscripPart.BackColor = Color.White;
            }

            if (txtMontAnualVent.Text.Trim() == "")
            {
                txtMontAnualVent.Focus();
                txtMontAnualVent.BackColor = Color.Red;
                return;
            }
            {
                txtMontAnualVent.BackColor = Color.White;
            }
            if (txtNumEmpl.Text.Trim() == "")
            {
                txtNumEmpl.Focus();
                txtNumEmpl.BackColor = Color.Red;
                return;
            }
            {
                txtNumEmpl.BackColor = Color.White;
            }

            //if (txtPagWeb.Text.Trim() == "")
            //{
            //    txtPagWeb.Focus();
            //    txtPagWeb.BackColor = Color.Red;
            //    return;
            //}
            //{
            //    txtPagWeb.BackColor = Color.White;
            //}
          
            //string celda1;
            //celda1 = tablaInformBasica.Rows[0].ItemArray[tablaInformBasica.Columns["VRUB_NOMBRE_RUBRO"].Ordinal].ToString();
            //if (celda1.Trim() == "") 
            //{
            //    GvgRubro.Focus();
            //    return;
            //}

            
            //CargarDatosTabla();
            Response.Redirect("wDireccion.aspx?idproveedor=" +  txtNumIdent.Text, true);         
        }

        private void CargarDatosTabla() 
        {
            if (tablaTodaInformBasicaRubro.Rows.Count == 1) 
            {
                tablaTodaInformBasicaRubro.Rows.RemoveAt(0); 
            }
          
            DataRow filaTodo = tablaTodaInformBasicaRubro.NewRow();
            filaTodo["colClasPers"] =dllClasPer.SelectedValue.ToString();
            filaTodo["coltipIdent"] =dllTipIden.SelectedValue.ToString();
            filaTodo["colNumIdet"] =txtNumIdent.Text;
            filaTodo["colrbTipNom"] =rbTipoNomb.SelectedValue.ToString();
            filaTodo["colRazonSoc"] =txtRazSocial.Text;
            filaTodo["colNomComer"] =txtNomComercial.Text;
            filaTodo["colNomb"] =txtNomb.Text;
            filaTodo["colApell"] =txtApell.Text;
            filaTodo["colTipEmp"] =dllTipEmp.SelectedValue.ToString();
            filaTodo["colEmpOtros"] =txtEmpOtros.Text;
            filaTodo["colRegPubInscripPart"] =txtRegPubInscripPart.Text;
            filaTodo["colTipMoneda"] = dllTipMoneda.SelectedValue.ToString();            
            filaTodo["colMontAnualVent"] =txtMontAnualVent.Text;
            filaTodo["colNumEmpl"] =txtNumEmpl.Text;
            filaTodo["colPagWeb"] =txtPagWeb.Text;
            tablaTodaInformBasicaRubro.Rows.Add(filaTodo);        
        }

        private void LlenarCampos() 
        {
            if (tablaTodaInformBasicaRubro.Rows.Count == 1)
            {
                dllClasPer.SelectedValue = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colClasPers"].Ordinal].ToString();
                dllTipIden.SelectedValue = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["coltipIdent"].Ordinal].ToString();
                txtNumIdent.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colNumIdet"].Ordinal].ToString();
                rbTipoNomb.SelectedValue = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colrbTipNom"].Ordinal].ToString();
                VisualizarCampos();
                txtRazSocial.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colRazonSoc"].Ordinal].ToString();
                txtNomComercial.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colNomComer"].Ordinal].ToString();
                txtNomb.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colNomb"].Ordinal].ToString();
                txtApell.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colApell"].Ordinal].ToString();
                dllTipEmp.SelectedValue = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colTipEmp"].Ordinal].ToString();
                Activar_TextoOtros();
                txtEmpOtros.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colEmpOtros"].Ordinal].ToString();
                txtRegPubInscripPart.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colRegPubInscripPart"].Ordinal].ToString();
                dllTipMoneda.SelectedValue = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colTipMoneda"].Ordinal].ToString(); 
                txtMontAnualVent.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colMontAnualVent"].Ordinal].ToString();
                txtNumEmpl.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colNumEmpl"].Ordinal].ToString();
                txtPagWeb.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colPagWeb"].Ordinal].ToString();
                txtEmail.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["colEmail"].Ordinal].ToString();
                txtObservacion.Text = tablaTodaInformBasicaRubro.Rows[0].ItemArray[tablaTodaInformBasicaRubro.Columns["vbas_comentarios"].Ordinal].ToString();
                tablaTodaInformBasicaRubro.Dispose();
            }
        }
        
        protected void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtNumIdent.Text = "";
            txtNumEmpl.Text = "";
            txtApell.Text = "";
            txtEmpOtros.Text = "";
            txtMontAnualVent.Text = "";
            txtNomb.Text = "";
            txtNomComercial.Text = "";
            txtPagWeb.Text = "";
            txtRazSocial.Text = "";
            txtRegPubInscripPart.Text = "";
            dllClasPer.SelectedValue = "0";
            dllTipEmp.SelectedValue = "0";
            dllTipIden.SelectedValue = "0";
            txtNumIdent.Focus();
        }

        protected void dllTipIden_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dllTipIden.SelectedValue != "0")
            {
                txtNumIdent.Enabled = true;

                if (dllTipIden.SelectedValue == "1" || dllTipIden.SelectedValue == "4" || dllTipIden.SelectedValue == "7")
                {
                    txtNumIdent.MaxLength = 8;
                    txtNumIdent.Focus();

                }
                else if (dllTipIden.SelectedValue == "6")
                {
                    txtNumIdent.MaxLength = 11;
                    txtNumIdent.Focus();

                }
            }
            else { txtNumIdent.Enabled = false; }
          
        }

        protected void btnSiguiente_Click(object sender, EventArgs e)
        {
            Validar();
        }

        protected void GvgRubro_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int indice = e.RowIndex;
            double id = double.Parse(GvgRubro.DataKeys[indice].Value.ToString());
            //double.Parse( GvgRubro.Rows[indice].Cells[0].Text);
            string identificacion = txtNumIdent.Text;

            NProveedor proveedor = new NProveedor();
            if (proveedor.DeleteRubroComprador(id, identificacion) == 1) 
            {
                lblError.Text = "Rubro eliminado con éxito";
            }
            CargarRubrosComprador();
            CargarTiposRubro();
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            AceptarProveedor();
        }


        #region "Custom Methods"

        private void CargarInformacionBasica() 
        {
            NProveedor proveedor = new NProveedor();
            tablaTodaInformBasicaRubro = proveedor.InformacionBasica(txtNumIdent.Text);
            Session["tblTodaInformBasicaRubro"] = tablaTodaInformBasicaRubro;
        }

        private void CargarRubrosProveedor() 
        {
            NProveedor proveedor = new NProveedor();
            GvRubroProveedor.DataSource = proveedor.RubroProveedor(txtNumIdent.Text);
            GvRubroProveedor.DataBind();
        }

        private void CargarRubrosComprador() 
        {
            NProveedor proveedor = new NProveedor();
            DataTable dt = proveedor.RubroComprador(txtNumIdent.Text);
            if (dt.Rows.Count > 0)
            {
                GvgRubro.DataSource = dt;
                GvgRubro.DataBind();
                Session["tblInformBasica"] = dt;
            }
            else 
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                GvgRubro.DataSource = dt;
                GvgRubro.DataBind();
                GvgRubro.Rows[0].Visible = false;
            }
            //GvgRubro.DataSource = proveedor.RubroComprador(txtNumIdent.Text);
            //GvgRubro.DataBind();
        }

        private void AgregarRubroComprador(string idrubro,string nombrerubro, string identificacion)
        {
            NProveedor proveedor = new NProveedor();
            if (proveedor.InsertRubroComprador(idrubro, nombrerubro, identificacion) == 1)
            {
                lblError.Text = "Rubro insertado con exito";
            }
            else 
            {
                lblError.Text = "No se puedo insert el Rubro";
            }
        }

        private void CargarKeyWords() 
        {

            NProveedor proveedor = new NProveedor();
            DataTable dt = proveedor.KeyWord(txtNumIdent.Text);
            if (dt.Rows.Count > 0)
            {
                gvKeyWord.DataSource = dt;
                gvKeyWord.DataBind();
            }
            else 
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                gvKeyWord.DataSource = dt;
                gvKeyWord.DataBind();
                gvKeyWord.Rows[0].Visible = false;
            }
        }

        private void AgregarKeyWords(string keyword, string identificacion) 
        {
            NProveedor proveedor = new NProveedor();
            if (proveedor.InsertKeyWord(keyword, identificacion) == 1)
            {
                lblerrorkeyword.Text = "KeyWord insertado con éxito";
            }
            else
            {
                lblerrorkeyword.Text = "No se puedo insert el KeyWord";
            }

        }

        private void DesabilitarControles() 
        {
            dllClasPer.Enabled = false;
            dllTipIden.Enabled = false;
            txtNumIdent.Enabled = false;
            rbTipoNomb.Enabled = false;
            txtRazSocial.Enabled = false;
            txtNomComercial.Enabled = false;
            txtNomb.Enabled = false;
            txtApell.Enabled = false;
            dllTipEmp.Enabled = false;
            txtEmpOtros.Enabled = false;
            txtRegPubInscripPart.Enabled = false;
            dllTipMoneda.Enabled = false;
            txtMontAnualVent.Enabled = false;
            txtNumEmpl.Enabled = false;
            txtPagWeb.Enabled = false;
            txtEmail.Enabled = false;
        }

        private void AceptarProveedor() 
        {

            NProveedor proveedor = new NProveedor();
            System.Data.DataTable dt = proveedor.HistoricoEstadosProveedor(txtNumIdent.Text);
            int estadoproveedor = int.Parse(dt.Rows[0].ItemArray[dt.Columns.IndexOf("id")].ToString());
            if (estadoproveedor == Constanst.ProveedorIngresado)
            {

                if (txtObservacion.Text.Trim() == "") { EscribirScriptManager("Ingrese una Observación"); return; }
                else
                {
                    //NFormatCorreo formatocorreo = new NFormatCorreo();
                    //DataTable dtformatocorreo = formatocorreo.MostrarFormato(1);
                    //string asunto = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DESCRIPCION_CORREO")].ToString();
                    //string body = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DETALLE_CORREO")].ToString();
                    //Util.EnviarCorreo(txtEmail.Text, asunto, body);
                    proveedor.ProveedorEstableNoEstable(Constanst.ProveedorAceptado, txtObservacion.Text, txtNumIdent.Text);
                    EscribirScriptManager("Se Aceptó el Proveedor Correctamente..");
                }
            }
            else 
            {
                EscribirScript("Solo se puede Aceptar un proveedor Ingresado");
            }

        }

        private void RechazarProveedor() 
        {
            NProveedor proveedor = new NProveedor();
            System.Data.DataTable dt = proveedor.HistoricoEstadosProveedor(txtNumIdent.Text);
            int estadoproveedor = int.Parse(dt.Rows[0].ItemArray[dt.Columns.IndexOf("id")].ToString());
            if (estadoproveedor == Constanst.ProveedorAceptado)
            {
                NFormatCorreo formatocorreo = new NFormatCorreo();
                DataTable dtformatocorreo = formatocorreo.MostrarFormato(2);
                string asunto = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DESCRIPCION_CORREO")].ToString();
                string body = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DETALLE_CORREO")].ToString();

                NCorreo correo = new NCorreo();
                correo.EnviarCorreo(txtEmail.Text, asunto, body);
                //Util.EnviarCorreo(txtEmail.Text, asunto, body);
                proveedor.ProveedorEstableNoEstable(Constanst.ProveedorNoEstable, txtObservacion.Text, txtNumIdent.Text);
                EscribirScriptManager("Se Rechazó el Proveedor y se le notificó mediante un correo");

            }
            else 
            {
                EscribirScript("Solo se puede Rechazar a un Proveedor Aceptado");
            }
        }

        private void CargarArchivosAdjuntos() 
        {
            NArchivo archivo = new NArchivo();
            gvreportes.DataSource = archivo.ListaArchivosxRuc(txtNumIdent.Text);
            gvreportes.DataBind();
        }

        #endregion

        protected void btnagregarkeyword_Click(object sender, EventArgs e)
        {
            string keyword = ((TextBox) gvKeyWord.FooterRow.FindControl("txtnombrekeyword")).Text;
            if (keyword.Trim() != "") { 
                AgregarKeyWords(keyword, txtNumIdent.Text);
                CargarKeyWords();
            }
            else{
                EscribirScriptManager("Debe Ingresar un Texto primero");
            }
        }

        protected void gvKeyWord_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int indice = e.RowIndex;
            int id = int.Parse(gvKeyWord.DataKeys[indice].Value.ToString());

            NProveedor proveedor = new NProveedor();

            proveedor.DeleteKeyWord(id, txtNumIdent.Text);

            if (proveedor.DeleteKeyWord(id,txtNumIdent.Text) == 1) 
            {
                lblerrorkeyword.Text = "KeyWord eliminado con éxito";
            }

            CargarKeyWords();
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                
                    AceptarProveedor();
                   
                
            }
            catch (Exception ex) 
            {
                EscribirScriptManager("Ocurrio un error en el Proceso " +  ex.Message);
            }
        }

        protected void btnRechazar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtObservacion.Text.Trim() == "") { EscribirScriptManager("Ingrese una Observacion"); return; }
                else
                {
                    RechazarProveedor();
                    
                }
                
            }
            catch (Exception ex)
            {
                EscribirScriptManager("Ocurrio un error en el Proceso");
            }

        }

        protected void dllTipMoneda_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtMontAnualVent.Focus();
        }

        protected void gvreportes_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string nombreArchivo = e.CommandArgument.ToString();

            string nuevonombrearchivo = DateTime.Now.ToFileTime() + nombreArchivo;

            NArchivo archivo = new NArchivo();

            if (archivo.ExisteArchivo(nombreArchivo))
            {

                Util.PutFile(archivo.GetFile(nombreArchivo), Server.MapPath("~\\Archivos\\") + nuevonombrearchivo);

                FileInfo archivosubido = new FileInfo(Server.MapPath("~\\Archivos\\") + nuevonombrearchivo);
                Byte[] bytesarchivo = File.ReadAllBytes(Server.MapPath("~\\Archivos\\") + nuevonombrearchivo);

                Response.Clear();
                Response.AddHeader("Content-Disposition",
                        "attachment; filename=" + nombreArchivo);
                Response.AddHeader("Content-Length", archivosubido.Length.ToString());
                Response.ContentType = "application/octet-stream";
                Util.DeleteDocument(Server.MapPath("~\\Archivos\\") + nuevonombrearchivo);
                Response.BinaryWrite(bytesarchivo);
                //Response.WriteFile(Server.MapPath("~\\Archivos\\") + nuevonombrearchivo);
                Response.End();
            }
            else
            {
                EscribirScript("El archivo no se encuentra en el Servidor");
            }

        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wInformBasica.aspx?idproveedor=" + txtNumIdent.Text, true);   
        }

        protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wDireccion.aspx?idproveedor=" + txtNumIdent.Text, true);   
        }

        protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wRefComercial.aspx?idproveedor=" + txtNumIdent.Text, true);   
        }

        protected void ImageButton4_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wInformPersonas.aspx?idproveedor=" + txtNumIdent.Text, true);   
        }

        protected void ImageButton6_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wInformFinanciera.aspx?idproveedor=" + txtNumIdent.Text, true);   

        }

        protected void ImageButton5_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wInformTributaria.aspx?idproveedor=" + txtNumIdent.Text, true);   
        }

    }
}